//Wed Aug 31 00:14:03 CDT 2011
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

class NetworkXZeroOne {
public:
	string reconstruct(string);
};

string NetworkXZeroOne::reconstruct(string msg) {
	int index = -1;
	for(int i=0; i<msg.size(); i++)
		if(msg[i]!='?')
		{index = i; break;}
	for(int i=index-1; i>=0; i--)
		if(msg[i+1]=='o') msg[i] = 'x';
		else if(msg[i+1] =='x') msg[i] = 'o';
	for(int i=index+1; i<msg.size(); i++)
		if(msg[i-1]=='o') msg[i] = 'x';
		else if(msg[i-1]=='x') msg[i] = 'o';
	return msg;
}


//Powered by [KawigiEdit] 2.0!
